<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition template="#{ConfiguracionBean.rutaContexto}resources/Plantillas/normal.xhtml"
                xmlns="http://www.w3.org/1999/xhtml"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:p="http://primefaces.org/ui">

    <ui:define name="titulo">
        <h:outputText value="Códigos de Larga Distancia"/>
    </ui:define>

    <ui:define name="content">
        <h:panelGroup rendered="#{!ConfiguracionModulosBean.moduloCodigosLd}">
            <h:outputText value="Este módulo está desactivado" style="color: red;"/>
        </h:panelGroup>
        <h:panelGroup rendered="#{ConfiguracionModulosBean.moduloCodigosLd}">
            <p:panel header="Búsqueda" toggleable="true" toggleSpeed="100">
                <h:form id="formLd">
                    <h:panelGrid>
                        <h:panelGrid columns="2">
                            
                            <h:outputText value="Operador"/>
                            <h:panelGrid id="listaOperador" columns="2" cellspacing="0" cellpadding="0">
                                <h:selectOneMenu value="#{CodigosLdBean.operadorVO.emrCodigo}">
                                    <f:selectItems value="#{CodigosLdBean.listaOperador}" />
                                    <p:ajax update="listaOperador" global="false"/>
                                </h:selectOneMenu>
                                <p:commandLink ajax="true" rendered="#{CodigosLdBean.operadorVO.emrCodigo != -1}" update="listaOperador" global="false">
                                    <p:graphicImage value="#{ConfiguracionBean.rutaContexto}resources/images/borrar.png" style="border:0px"/>
                                    <f:setPropertyActionListener target="#{CodigosLdBean.operadorVO.emrCodigo}" value="-1"/>
                                </p:commandLink>
                            </h:panelGrid>
                            
                            <h:outputText value="Estado"/>
                            <h:panelGrid id="listaEstado" columns="2" cellspacing="0" cellpadding="0">
                                <h:selectOneMenu value="#{CodigosLdBean.estadoVO.esnCodigo}">
                                    <f:selectItems value="#{CodigosLdBean.listaEstado}" />
                                    <p:ajax update="listaEstado" global="false"/>
                                </h:selectOneMenu>
                                <p:commandLink ajax="true" rendered="#{CodigosLdBean.estadoVO.esnCodigo != -1}" update="listaEstado" global="false">
                                    <p:graphicImage value="#{ConfiguracionBean.rutaContexto}resources/images/borrar.png" style="border:0px"/>
                                    <f:setPropertyActionListener target="#{CodigosLdBean.estadoVO.esnCodigo}" value="-1"/>
                                </p:commandLink>
                            </h:panelGrid>
                            
                            <h:outputText value="Código LD"/>
                            <h:panelGrid columns="2" cellpadding="0" cellspacing="0">
                                <h:inputText id="codigoLd" value="#{CodigosLdBean.codigoLd}" maxlength="3" size="3" converter="javax.faces.Integer"
                                             converterMessage="Debes ingresar un número entero" validator="#{Validador.enteroPositivo}"/>
                                <p:message for="codigoLd" />
                            </h:panelGrid>
                            
                            <h:outputText value=" "/>
                            <h:panelGrid columns="2" cellspacing="0" cellpadding="0">
                                <h:outputText value="Borrar todos los filtros &nbsp;" />
                                <p:commandLink ajax="true" update="formLd" global="false">
                                    <p:graphicImage value="#{ConfiguracionBean.rutaContexto}resources/images/borrar.png" style="border:0px"/>
                                    <f:setPropertyActionListener target="#{CodigosLdBean.operadorVO.emrCodigo}" value="-1"/>
                                    <f:setPropertyActionListener target="#{CodigosLdBean.estadoVO.esnCodigo}" value="-1"/>
                                    <f:setPropertyActionListener target="#{CodigosLdBean.codigoLd}" value=""/>
                                </p:commandLink>
                            </h:panelGrid>
                            
                        </h:panelGrid>
                        <h:panelGrid>
                            <p:commandButton value="Consultar" action="#{CodigosLdBean.buscar}" ajax="true" update=":pgCodigosLd,formLd">
                                <f:setPropertyActionListener target="#{CodigosLdBean.selectedLdsAccion}" value="false"/>
                            </p:commandButton>
                        </h:panelGrid>
                    </h:panelGrid>
                </h:form>
            </p:panel>

            <h:panelGrid id="pgCodigosLd" width="100%">
                <h:form id="frmDatos">
                    <h:panelGrid style="text-align: left;font-size:10px" rendered="#{UserBean.login}">
                        <h:panelGroup id="opciones">
                            <p:commandButton value="Acción" ajax="true" actionListener="#{CodigosLdBean.detalleAccionLd}" update=":datosAccionRecurso,:display" oncomplete="ldAccionDialog.show();" icon="ui-icon ui-icon-cart" disabled="#{!CodigosLdBean.selectedLdsAccion}" rendered="#{UserBean.permisos.codigosLd or (UserBean.liberar or UserBean.reservar)}"/>
                        </h:panelGroup>
                    </h:panelGrid>
                    <p:dataTable id="datos" value="#{CodigosLdBean.coLD}" var="ld" paginator="true" paginatorPosition="top"
                                 selectionMode="#{(UserBean.login == true and UserBean.permisos.codigosLd == true) or (UserBean.liberar or UserBean.reservar) ? 'multiple' : null}"
                                 selection="#{CodigosLdBean.selectedLds}" rowIndexVar="rowIndex" widgetVar="datatableVar" rowKey="#{ld.clnCodigo}"
                                 rows="20" emptyMessage="No se encontraron registros" style="font-size:10px" rowsPerPageTemplate="10,20,30,40,50"
                                 paginatorTemplate=" #{CodigosLdBean.countCoLD} registros encontrados {RowsPerPageDropdown} {CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}">
                        <p:ajax event="rowSelect" listener="#{CodigosLdBean.onRowSelect}" update=":frmDatos:opciones" />
                        <p:ajax event="rowUnselect" listener="#{CodigosLdBean.onRowUnselect}" update=":frmDatos:opciones" />
                        
                        <p:column style="width:25px">
                            <p:commandButton update=":display,:datosRecurso" oncomplete="ldDialog.show();" icon="ui-icon ui-icon-search" action="#{CodigosLdBean.detalleLd}">  
                                <f:setPropertyActionListener target="#{CodigosLdBean.selectedLd}" value="#{ld}"/>  
                            </p:commandButton>
                        </p:column>
                        <p:column headerText="CÓDIGO LD" style="width:100px; text-align: center">
                            <h:outputText value="#{ld.clnCodigoLd}"/>
                        </p:column>
                        <p:column headerText="ESTADO" style="width:100px">
                            <div style="width: 100%; text-align: center;" class="#{ld.esnCodigo.esnCodigo == '3' ? 'estado-asignado' :
                                                                                   ld.esnCodigo.esnCodigo == '4' ? 'estado-reserva' : 
                                                                                   ld.esnCodigo.esnCodigo == '2' ? 'estado-preasignado' :
                                                                                   ld.esnCodigo.esnCodigo == '1' ? 'estado-libre' :
                                                                                   null}">
                                <h:outputText value="#{ld.esnCodigo.estNombre}"/>
                            </div>
                        </p:column>
                        <p:column headerText="EMPRESA">
                            <h:outputText value="#{ld.emrCodigo.emtNombre}"/>
                        </p:column>
                    </p:dataTable>
                </h:form>
            </h:panelGrid>


            <!-- DETALLE RECURSO -->
            <h:panelGroup id="datosRecurso">
                <p:dialog header="Detalle" widgetVar="ldDialog" resizable="false" modal="true" draggable="false"
                          width="400" showEffect="fade" hideEffect="fade" position="center">  
                    <h:panelGrid cellpadding="1" style="font-size: 10px;" width="400">
                        <h:panelGrid columns="2" cellpadding="4" width="100%">
                            <h:outputText value="Código LD:" style="font-weight: bold;"/>
                            <h:outputText value="#{CodigosLdBean.selectedLd.clnCodigoLd}" />
                            <h:outputText value="Estado:" style="font-weight: bold;"/>
                            <h:outputText value="#{CodigosLdBean.selectedLd.esnCodigo.estNombre}" />
                            <h:outputText value="Operador:" style="font-weight: bold;"/>
                            <h:outputText value="#{CodigosLdBean.selectedLd.emrCodigo.emtNombre}" />
                            <h:outputText value="Observaciones:" style="font-weight: bold;"/>
                            <h:outputText value="#{CodigosLdBean.selectedLd.cltObservaciones}" />
                        </h:panelGrid>
                        <h:panelGrid columns="2" width="100%" style="text-align: center;">
                            <p:commandButton type="button" value="Ver Historia" onclick="historiaDialog.show();"/>
                        </h:panelGrid>
                    </h:panelGrid>
                </p:dialog>

                <p:dialog header="Historia recurso" widgetVar="historiaDialog" resizable="false" modal="true" draggable="false" 
                          width="400" height="300" showEffect="fade" hideEffect="fade" position="center">
                    <h:form>
                        <p:dataTable var="tc" value="#{CodigosLdBean.tramiteLd}" style="font-size: 10px;"
                                     emptyMessage="No se encontró historia registrada para este recurso">
                            <p:column>
                                <f:facet name="header">
                                    <h:outputText value="Resolución" style="font-weight: bold;"/>
                                </f:facet>
                                <h:outputText value="#{tc.trnCodigo.trnResolucion}"/>
                            </p:column>
                            <p:column>
                                <f:facet name="header">
                                    <h:outputText value="Fecha Resolución" style="font-weight: bold;"/>
                                </f:facet>
                                <h:outputText value="#{tc.trnCodigo.trfFechaResolucion}">
                                    <f:convertDateTime pattern="dd/MM/yyyy" type="date" timeZone="EST"/>
                                </h:outputText>
                            </p:column>
                            <p:column>
                                <f:facet name="header">
                                    <h:outputText value="Acción" style="font-weight: bold;"/>
                                </f:facet>
                                <h:outputText value="#{tc.acnCodigo.actNombre}"/>
                            </p:column>
                        </p:dataTable>
                    </h:form>
                </p:dialog>
            </h:panelGroup>

            <h:panelGroup id="datosAccionRecurso">

                <p:dialog header="Detalle" widgetVar="ldAccionDialog" resizable="false" modal="true" draggable="false"
                          width="700" showEffect="fade" hideEffect="fade" position="center">
                    <h:panelGrid cellpadding="1" style="font-size: 10px;" width="100%">
                        <h:form>
                            <p:dataTable id="datosAccionLd" value="#{CodigosLdBean.selectedLds}" var="detalleLd" paginator="false" style="font-size:10px">
                                <f:facet name="header">Detalle códigos de larga distancia</f:facet>
                                <p:column headerText="CÓDIGO LD" styleClass="tabla-recurso">
                                    <h:outputText value="#{detalleLd.clnCodigoLd}"/>
                                </p:column>
                                <p:column headerText="ESTADO" >
                                    <h:outputText value="#{detalleLd.esnCodigo.estNombre}"/>
                                </p:column>
                                <p:column headerText="EMPRESA" >
                                    <h:outputText value="#{detalleLd.emrCodigo.emtNombre}"/>
                                </p:column>
                            </p:dataTable>

                            <h:panelGrid columns="2" width="100%" style="text-align: center;">
                                <h:panelGroup rendered="#{UserBean.login}">
                                    <h:outputText value="Los códigos LD en reserva solo pueden ser manipulados por el administrador" rendered="#{(!UserBean.reservar) and (CodigosLdBean.selectedLdsLiberar)}" style="color: red;"/>
                                    <p:commandButton value="Pre-Asignar" rendered="#{(UserBean.permisos.codigosLd and CodigosLdBean.selectedLdsPreasignar)}" update=":datosPreasignar" oncomplete="ldAccionDialog.hide();preasignarDialog.show();">
                                        <f:setPropertyActionListener target="#{TramiteBean.tipoRecurso}" value="codigosCortos"/>
                                    </p:commandButton>
                                    <p:commandButton value="Recuperar" rendered="#{(UserBean.permisos.codigosLd and CodigosLdBean.selectedLdsRecuperar)}" update=":datosRecuperar" oncomplete="ldAccionDialog.hide();recuperarDialog.show();"/>
                                    <p:commandButton value="Liberar" rendered="#{(UserBean.liberar and CodigosLdBean.selectedLdsLiberar)}" action="#{TramiteBean.liberarReservarRecurso}" update=":datosResultadoAgregar,:pgCodigosLd" oncomplete="ldAccionDialog.hide();resultadoAgregarDialog.show();">
                                        <f:setPropertyActionListener target="#{TramiteBean.tipoRecurso}" value="codigosld"/>
                                        <f:setPropertyActionListener target="#{TramiteBean.codigoAccion}" value="1"/>
                                    </p:commandButton>
                                    <p:commandButton value="Reservar" rendered="#{(UserBean.reservar and CodigosLdBean.selectedLdsReservar)}" action="#{TramiteBean.liberarReservarRecurso}" update=":datosResultadoAgregar,:pgCodigosLd" oncomplete="ldAccionDialog.hide();resultadoAgregarDialog.show();">
                                        <f:setPropertyActionListener target="#{TramiteBean.tipoRecurso}" value="codigosld"/>
                                        <f:setPropertyActionListener target="#{TramiteBean.codigoAccion}" value="4"/>
                                    </p:commandButton>
                                </h:panelGroup>
                            </h:panelGrid>
                        </h:form>
                    </h:panelGrid>
                </p:dialog>
            </h:panelGroup>
            
            <h:panelGroup rendered="#{UserBean.permisos.codigosLd or (UserBean.liberar or UserBean.reservar)}">
                <ui:include src="#{ConfiguracionBean.rutaContexto}usuarios/detalleCodigosLd.xhtml"/>
            </h:panelGroup>

        </h:panelGroup>
            
    </ui:define>
</ui:composition>
